#! /bin/bash
oIFS=$IFS
> ../dados/clusterizacao
#> ../dados/grafo2.net
#> ../dados/relacionados


#Gera o aquivo de relacionamentos (../dados/relacionados)
#while read autor
#do
#
#
#
#	IFS=$'\n'	
#	relacionados=
#
#	autorID=$(grep -iw -m 1 "$autor" ../dados/dicionario | cut -d " " -f1)
#
#	#Gerando o .net para o pajek
#	for relacionado in  $(grep -iw  "${autor}" ../dados/coautores | tr -s " " | tr "&" "\n"  | sed "s/^ //g" | sed "s/ $//g"  | sort | uniq -i ) 
#	do
#	
#
#			relacionadoID=$(grep -iw -m 1 "${relacionado}" ../dados/dicionario | cut -d " " -f1 | tr "\n" " ")
#
#			if [ $? -eq 0 ] && [ $relacionadoID ] 
#			then
#				relacionados="$relacionados $relacionadoID"		
#				echo "$autorID $relacionadoID " >> ../dados/grafo2.net
#			fi
#	done
#
#	echo "Relacionados($autorID): $relacionados" >> ../dados/relacionados
#	
#	IFS=$oIFS
#done < ../dados/autores

#Pode-se calcular o coeficente agora pois todos as relacoes foram encontradas
while read autor
do
	autorID=$(grep -iw -m 1 "$autor" ../dados/dicionario | cut -d " " -f1)

	relacionados=$(grep -iw  -m 1 "Relacionados(${autorID})" ../dados/relacionados | cut -d":" -f2)

	degree=$(( $( echo $relacionados | wc -w) -1 ))

	arestas_existentes=0

	for elemento in $relacionados
	do
		if [ $elemento != $autorID ]
		then
			
			for x in  $( grep -iw "Relacionados(${elemento})" ../dados/relacionados | cut -d":" -f2)
			do
				if  [ $elemento  != $x ] && [ $x != $autorID ]
				then
#					echo "-> $x"
#					echo "$autorID ---> $x -> $element"
#					echo $(grep -iw "Relacionados(${elemento})" ../dados/relacionados | cut -d":" -f2)	
#					echo "contou 1"
					
					for volta in $relacionados
					do	
						if [ $volta != $elemento ] && [ $volta != $autorID ] && [ $volta = $x ]
						then
							arestas_existentes=$((arestas_existentes + 1))
#							echo "$elemento --> $x"
						fi
					done
				fi
#
		
			done
		fi
	done
	
	#Remove as duplicatas de cada aresta
	arestas_existentes=$((arestas_existentes / 2))
#	echo "Existem $arestas_existentes no $autor degree $degree"

	if [ $degree -le 1 ]
	then	
		echo "1.00" >> ../dados/clusterizacao
	else
		echo "scale=2; (2 * ${arestas_existentes}  )/(${degree} * (${degree}-1) )" | bc >> ../dados/clusterizacao
	fi


done < ../dados/autores

#Encontra o coeficiente de clusterizacao medio
ccmedio=$(echo "scale=2; ($(cat ../dados/clusterizacao | tr '\n' '+' | sed 's/+$//g')) / $(cat ../dados/autores | wc -l) " | bc)

echo "Coeficiente medio do grafo: $ccmedio"



